package com.t.bricks.bussiness.db.entity.prizeallot.base;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import org.springframework.format.annotation.DateTimeFormat;

import com.t.bricks.annotation.DataInfo;

/**
 * 奖金分配记录'PrizeAllot'表实体类
 * 警告:非数据库字段禁止在此添加,应该创建扩展实体中添加
 * @author HuangXinBian
 * @DateTime 2022年08月18日 14:12:30
 */
@ApiModel("奖金分配记录PrizeAllot")
@DataInfo(sDbName="BricksOA", sTableName="PrizeAllot")
public class PrizeAllotBase implements Serializable {

	private static final long serialVersionUID = 1L;// 使用rmi时需修改

	/**
	 * 记录编号
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="sId", sComment="记录编号", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=true, isNull=false,
		iMaxLength=20, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=0 )
	@ApiModelProperty(value="记录编号", example="")
	//[end]
	protected String sId;

	/**
	 * 奖金分配编号(关联PrizeManage)
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="sManageId", sComment="奖金分配编号(关联PrizeManage)", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=8, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=1 )
	@ApiModelProperty(value="奖金分配编号(关联PrizeManage)", example="")
	//[end]
	protected String sManageId;

	/**
	 * 人员编号
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="sPersonId", sComment="人员编号", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=8, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=2 )
	@ApiModelProperty(value="人员编号", example="")
	//[end]
	protected String sPersonId;

	/**
	 * 人员名称(冗余)
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="sPersonName", sComment="人员名称(冗余)", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=32, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=3 )
	@ApiModelProperty(value="人员名称(冗余)", example="")
	//[end]
	protected String sPersonName;

	/**
	 * 工作名(各工作用分号分隔)
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="sNames", sComment="工作名(各工作用分号分隔)", isDbField=true, sDbFileType="longtext",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=4 )
	@ApiModelProperty(value="工作名(各工作用分号分隔)", example="")
	//[end]
	protected String sNames;

	/**
	 * 工作数(各值用分号分隔)
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="sValues", sComment="工作数(各值用分号分隔)", isDbField=true, sDbFileType="longtext",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=5 )
	@ApiModelProperty(value="工作数(各值用分号分隔)", example="")
	//[end]
	protected String sValues;

	/**
	 * 工作项对应权重(逗号分隔)
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="sWorkWeight", sComment="工作项对应权重(逗号分隔)", isDbField=true, sDbFileType="longtext",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=100, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=6 )
	@ApiModelProperty(value="工作项对应权重(逗号分隔)", example="")
	//[end]
	protected String sWorkWeight;

	/**
	 * 总工作量
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="iSumWorkInt", sComment="总工作量", isDbField=true, sDbFileType="int",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=11, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=7 )
	@ApiModelProperty(value="总工作量", example="")
	//[end]
	protected Integer iSumWorkInt;

	/**
	 * 加权和
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="iSumWorkNum", sComment="加权和", isDbField=true, sDbFileType="int",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=11, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=8 )
	@ApiModelProperty(value="加权和", example="")
	//[end]
	protected Integer iSumWorkNum;
	
	/**
	 * 预计奖金(个人)
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="mPrizeReckon", sComment="预计奖金(个人)", isDbField=true, sDbFileType="decimal",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=12, isDecimal=false, iIntegralLength=8, iDecimalLength=2, iIndex=9 )
	@ApiModelProperty(value="预计奖金(个人)", example="")
	//[end]
	protected BigDecimal mPrizeReckon;
	
	/**
	 * 实发奖金(个人)
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="mPrizeFact", sComment="实发奖金(个人)", isDbField=true, sDbFileType="decimal",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=12, isDecimal=false, iIntegralLength=8, iDecimalLength=2, iIndex=10 )
	@ApiModelProperty(value="实发奖金(个人)", example="")
	//[end]
	protected BigDecimal mPrizeFact;

	/**
	 * 备注
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="sMemo", sComment="备注", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=true,
		iMaxLength=200, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=11 )
	@ApiModelProperty(value="备注", example="")
	//[end]
	protected String sMemo;

	/**
	 * 状态
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="iState", sComment="状态", isDbField=true, sDbFileType="int",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=1, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=12 )
	@ApiModelProperty(value="状态", example="")
	//[end]
	protected Integer iState;

	/**
	 * 创建者
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="sCreator", sComment="创建者", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=8, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=13 )
	@ApiModelProperty(value="创建者", example="")
	//[end]
	protected String sCreator;

	/**
	 * 创建时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//解决表单提交时字符串时间值错误
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="dCreateDate", sComment="创建时间", isDbField=true, sDbFileType="datetime",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=23, isDecimal=false, iIntegralLength=-1, iDecimalLength=-1, iIndex=14 )
	@ApiModelProperty(value="创建时间", example="")
	//[end]
	protected Date dCreateDate;

	/**
	 * 修改人
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="sModifieder", sComment="修改人", isDbField=true, sDbFileType="varchar",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=8, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=15 )
	@ApiModelProperty(value="修改人", example="")
	//[end]
	protected String sModifieder;

	/**
	 * 修改时间
	 */
	@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//解决表单提交时字符串时间值错误
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="dModifiedDate", sComment="修改时间", isDbField=true, sDbFileType="datetime",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=23, isDecimal=false, iIntegralLength=-1, iDecimalLength=-1, iIndex=16 )
	@ApiModelProperty(value="修改时间", example="")
	//[end]
	protected Date dModifiedDate;

	/**
	 * 序号
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="iIndex", sComment="序号", isDbField=true, sDbFileType="int",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=8, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=17 )
	@ApiModelProperty(value="序号", example="")
	//[end]
	protected Integer iIndex;

	/**
	 * 版本号
	 */
	//[start]
	@DataInfo( sDbName="BricksOA", sTableName="PrizeAllot",
		sName="iVersion", sComment="版本号", isDbField=true, sDbFileType="int",
		sDefaultData="", isExtra=false, iskey=false, isNull=false,
		iMaxLength=8, isDecimal=false, iIntegralLength=2, iDecimalLength=2, iIndex=18 )
	@ApiModelProperty(value="版本号", example="")
	//[end]
	protected Integer iVersion;

	/**
	 * 取 记录编号
	 * @return String
	 */
	public String getsId() {
		return sId;
	}

	/**
	 * 设置记录编号
	 * @param sId
	 */
	public void setsId(String sId) {
		this.sId = sId;
	}

	/**
	 * 取 奖金分配编号(关联PrizeManage)
	 * @return String
	 */
	public String getsManageId() {
		return sManageId;
	}

	/**
	 * 设置奖金分配编号(关联PrizeManage)
	 * @param sManageId
	 */
	public void setsManageId(String sManageId) {
		this.sManageId = sManageId;
	}

	/**
	 * 取 人员编号
	 * @return String
	 */
	public String getsPersonId() {
		return sPersonId;
	}

	/**
	 * 设置人员编号
	 * @param sPersonId
	 */
	public void setsPersonId(String sPersonId) {
		this.sPersonId = sPersonId;
	}

	/**
	 * 取 人员名称(冗余)
	 * @return String
	 */
	public String getsPersonName() {
		return sPersonName;
	}

	/**
	 * 设置人员名称(冗余)
	 * @param sPersonName
	 */
	public void setsPersonName(String sPersonName) {
		this.sPersonName = sPersonName;
	}

	/**
	 * 取 工作名(各工作用分号分隔)
	 * @return String
	 */
	public String getsNames() {
		return sNames;
	}

	/**
	 * 设置工作名(各工作用分号分隔)
	 * @param sNames
	 */
	public void setsNames(String sNames) {
		this.sNames = sNames;
	}

	/**
	 * 取 工作数(各值用分号分隔)
	 * @return String
	 */
	public String getsValues() {
		return sValues;
	}

	/**
	 * 设置工作数(各值用分号分隔)
	 * @param sValues
	 */
	public void setsValues(String sValues) {
		this.sValues = sValues;
	}

	/**
	 * 取 工作项对应权重(逗号分隔)
	 * @return String
	 */
	public String getsWorkWeight() {
		return sWorkWeight;
	}

	/**
	 * 设置工作项对应权重(逗号分隔)
	 * @param sWorkWeight
	 */
	public void setsWorkWeight(String sWorkWeight) {
		this.sWorkWeight = sWorkWeight;
	}

	/**
	 * 取 总工作量
	 * @return Integer
	 */
	public Integer getiSumWorkInt() {
		return iSumWorkInt;
	}

	/**
	 * 设置总工作量
	 * @param iSumWorkInt
	 */
	public void setiSumWorkInt(Integer iSumWorkInt) {
		this.iSumWorkInt = iSumWorkInt;
	}

	/**
	 * 取 加权和
	 * @return Integer
	 */
	public Integer getiSumWorkNum() {
		return iSumWorkNum;
	}

	/**
	 * 设置加权和
	 * @param iSumWorkNum
	 */
	public void setiSumWorkNum(Integer iSumWorkNum) {
		this.iSumWorkNum = iSumWorkNum;
	}

	/**
	 * 取 预计奖金(个人)
	 * @return Long
	 */
	public BigDecimal getmPrizeReckon() {
		return mPrizeReckon;
	}

	/**
	 * 设置 预计奖金(个人)
	 * @param mPrizeReckon
	 */
	public void setmPrizeReckon(BigDecimal mPrizeReckon) {
		this.mPrizeReckon = mPrizeReckon;
	}

	/**
	 * 取 实发奖金(个人)
	 * @return Long
	 */
	public BigDecimal getmPrizeFact() {
		return mPrizeFact;
	}

	/**
	 * 设置 实发奖金(个人)
	 * @param mPrizeFact
	 */
	public void setmPrizeFact(BigDecimal mPrizeFact) {
		this.mPrizeFact = mPrizeFact;
	}

	/**
	 * 取 备注
	 * @return String
	 */
	public String getsMemo() {
		return sMemo;
	}

	/**
	 * 设置备注
	 * @param sMemo
	 */
	public void setsMemo(String sMemo) {
		this.sMemo = sMemo;
	}

	/**
	 * 取 状态
	 * @return Integer
	 */
	public Integer getiState() {
		return iState;
	}

	/**
	 * 设置状态
	 * @param iState
	 */
	public void setiState(Integer iState) {
		this.iState = iState;
	}

	/**
	 * 取 创建者
	 * @return String
	 */
	public String getsCreator() {
		return sCreator;
	}

	/**
	 * 设置创建者
	 * @param sCreator
	 */
	public void setsCreator(String sCreator) {
		this.sCreator = sCreator;
	}

	/**
	 * 取 创建时间
	 * @return Date
	 */
	public Date getdCreateDate() {
		return dCreateDate;
	}

	/**
	 * 设置创建时间
	 * @param dCreateDate
	 */
	public void setdCreateDate(Date dCreateDate) {
		this.dCreateDate = dCreateDate;
	}

	/**
	 * 取 修改人
	 * @return String
	 */
	public String getsModifieder() {
		return sModifieder;
	}

	/**
	 * 设置修改人
	 * @param sModifieder
	 */
	public void setsModifieder(String sModifieder) {
		this.sModifieder = sModifieder;
	}

	/**
	 * 取 修改时间
	 * @return Date
	 */
	public Date getdModifiedDate() {
		return dModifiedDate;
	}

	/**
	 * 设置修改时间
	 * @param dModifiedDate
	 */
	public void setdModifiedDate(Date dModifiedDate) {
		this.dModifiedDate = dModifiedDate;
	}

	/**
	 * 取 序号
	 * @return Integer
	 */
	public Integer getiIndex() {
		return iIndex;
	}

	/**
	 * 设置序号
	 * @param iIndex
	 */
	public void setiIndex(Integer iIndex) {
		this.iIndex = iIndex;
	}

	/**
	 * 取 版本号
	 * @return Integer
	 */
	public Integer getiVersion() {
		return iVersion;
	}

	/**
	 * 设置版本号
	 * @param iVersion
	 */
	public void setiVersion(Integer iVersion) {
		this.iVersion = iVersion;
	}

	/**
	 * 复制对象
	 * @param source 数据源
	 * @return PrizeAllotBase
	 */
	public static PrizeAllotBase copy(PrizeAllotBase source) {
		if (null == source) {
			return null;
		}
		
		PrizeAllotBase target = new PrizeAllotBase();
		target.setsId(source.getsId());
		target.setsManageId(source.getsManageId());
		target.setsPersonId(source.getsPersonId());
		target.setsPersonName(source.getsPersonName());
		target.setsNames(source.getsNames());
		target.setsValues(source.getsValues());
		target.setsWorkWeight(source.getsWorkWeight());
		target.setiSumWorkInt(source.getiSumWorkInt());
		target.setiSumWorkNum(source.getiSumWorkNum());
		target.setmPrizeReckon(source.getmPrizeReckon());
		target.setmPrizeFact(source.getmPrizeFact());
		target.setsMemo(source.getsMemo());
		target.setiState(source.getiState());
		target.setsCreator(source.getsCreator());
		target.setdCreateDate(source.getdCreateDate());
		target.setsModifieder(source.getsModifieder());
		target.setdModifiedDate(source.getdModifiedDate());
		target.setiIndex(source.getiIndex());
		target.setiVersion(source.getiVersion());

		return target;
	}
	
	/**
	 * 克隆对象
	 * @return PrizeAllotBase
	 */
	public PrizeAllotBase clone() {
		return copy(this);
	}
	
}
